<?php
	/*Pagina que duplica um curso*/

	session_start();

	include("/var/www/html/vivencias/conexaoBD.php");

	/*Variaveis*/
	$idCurso   = $_POST['idCurso']; 

	//Seleciona o(s) professor(es) criador do curso, somente ele pode duplicar o mesmo
	$queryProf     = "SELECT idUsuario FROM usuariosCursos WHERE dono=1 AND idCurso=".$idCurso;
	$resultadoProf = mysql_query($queryProf,$conexao);
	$objetoProf    = mysql_fetch_object($resultadoProf);

	if($_SESSION['idUsuario'] != $objetoProf->idUsuario){
		echo "<script>alert('Prezado Professor, somente o professor que criou o curso pode duplicar o mesmo.');window.top.location='entrada.p.php';</script>";
	}
	
	
	//Seleciona o curso e duplica os dados da tabela curso
	$query     = "SELECT * FROM cursos WHERE idCurso=".$idCurso;
	$resultado = mysql_query($query,$conexao);
	$objeto    = mysql_fetch_object($resultado);

	$nome = $objeto->nome . ' (Duplicado)';

	$queryDuplica     = "INSERT INTO cursos (nome,glossario,links,bibliografia,avisos,blog,chat,perguntasRespostas,formularios,salaReuniao,wiki,forum,conteudo,correio,apresentacao,conteudoCurso) VALUES 
('$nome',$objeto->glossario,$objeto->links,$objeto->bibliografia,$objeto->avisos,$objeto->blog,$objeto->chat,$objeto->perguntasRespostas,$objeto->formularios,$objeto->salaReuniao,$objeto->wiki,$objeto->forum,$objeto->conteudo,$objeto->correio,'$objeto->apresentacao','$objeto->conteudoCurso')";
	$resultadoDuplica = mysql_query($queryDuplica,$conexao); 
	
	if(!$resultadoDuplica){
		die("Ocorreu um erro durante a duplicacao do curso.Por favor, relate o erro mencionado ao administrador." . mysql_error());
	} 

	//echo "<script>alert('Curso duplicado com sucesso.');window.top.location='entrada.p.php';</script>";
	$idCursoDuplicado = mysql_insert_id();
	
	//Seleciona o(s) professor(es) do curso duplicado e insere
	$query2     = "SELECT * FROM usuariosCursos WHERE dono=1 AND idCurso=".$idCurso;
	$resultado2 = mysql_query($query2,$conexao);
	
	while($objeto2 = mysql_fetch_object($resultado2)){

		$query3     = "INSERT INTO usuariosCursos (idCurso,idUsuario,idTipoUsuario,dono,autorizado) VALUES ($idCursoDuplicado,$objeto2->idUsuario,0,1,1)";
		$resultado3 = mysql_query($query3,$conexao);	

	}
	
	//Seleciona o(s) modulo(s) do curso duplicado e insere
	$i       = 0;
	$queryModulos = "SELECT * FROM modulos WHERE idCurso=".$idCurso;
	$resultadoMod = mysql_query($queryModulos,$conexao);
	while($objetoMod = mysql_fetch_object($resultadoMod)){
		$query4     = "INSERT INTO modulos(idCurso,titulo,conteudo,ordem) VALUES ($idCursoDuplicado,'$objetoMod->titulo','$objetoMod->conteudo',$objetoMod->ordem)";
		$resultado4 = mysql_query($query4,$conexao); 
		$ids_modulos[$i][0] = $objetoMod->idModulo; //id do modulo no curso antigo
		$ids_modulos[$i][1] = mysql_insert_id();    //id do  modulo no curso novo, duplicado
		$i++;
		
	}


	//Seleciona o(s) link(s) do curso que sera duplicado e insere
	$i = 0;
	$queryLink     = "SELECT * FROM links WHERE idCurso=".$idCurso;
	$resultadoLink = mysql_query($queryLink,$conexao);
	while($objetoLink = mysql_fetch_object($resultadoLink)){
		//insere o link e atualiza a idUsuario com o do professor dono do curso
		$queryL   = "INSERT INTO links (link,idCurso,idUsuario,titulo,texto,recursoAssociado) VALUES ('$objetoLink->link',$idCursoDuplicado,'".$_SESSION['idUsuario']."','$objetoLink->titulo','$objetoLink->texto','$objetoLink->recursoAssociado')";
		$resultadoL = mysql_query($queryL,$conexao);

		$idLinkDuplicado  = mysql_insert_id();//id do link que acabou de ser inserido no curso duplicado
		
		$ids_links[$i][0] = $objetoLink->idLink; //id do link no curso antigo
		$ids_links[$i][1] = $idLinkDuplicado;   //id do link  no curso duplicado	

		$i++;		
	}

	//Seleciona a bibliografia do curso que sera duplicado e insere
	$i = 0;
	$queryBiblio     = "SELECT * FROM bibliografias WHERE idCurso=".$idCurso;
	$resultadoBiblio = mysql_query($queryBiblio,$conexao);
	while($objetoBiblio = mysql_fetch_object($resultadoBiblio)){
		$queryB     = "INSERT INTO bibliografias (idCurso,idUsuario,descricao,titulo,autor) VALUES ($idCursoDuplicado,'".$_SESSION['idUsuario']."','$objetoBiblio->descricao','$objetoBiblio->titulo','$objetoBiblio->autor')";
		$resultadoB = mysql_query($queryB,$conexao);

		$idBiblioDuplicada = mysql_insert_id();

		$id_biblio[$i][0] = $objetoBiblio->idBibliografia;
		$id_biblio[$i][1] = $idBiblioDuplicada;

		$i++;
	} 	

	//Formularios, exercicios
	$i = 0;
	$queryForm     = "SELECT * FROM formularios WHERE idCurso=".$idCurso;
	$resultadoForm = mysql_query($queryForm,$conexao);
	while($objetoForm = mysql_fetch_object($resultadoForm)){
		$queryF     = "INSERT INTO formularios (idCurso,idUsuario,nomefor,corrigir) VALUES ($idCursoDuplicado,'".$_SESSION['idUsuario']."','$objetoForm->nomefor',$objetoForm->corrigir)";
		$resultadoF = mysql_query($queryF,$conexao);

		$idFormDuplicado = mysql_insert_id();

		$id_formduplicado[$i][0] = $objetoForm->idformulario;
		$id_formduplicado[$i][1] = $idFormDuplicado;

		$i++;

		//Seleciona as perguntas do formulario duplicado e insere
                $queryP     = "SELECT * FROM formulariosPerguntas WHERE idFormulario=".$objetoForm->idformulario;
		$resultadoP = mysql_query($queryP,$conexao);
		while($objetoP = mysql_fetch_object($resultadoP)){
			$queryPerg     = "INSERT INTO formulariosPerguntas (idFormulario,idTipoPergunta,pergunta) VALUES ($idFormDuplicado,$objetoP->idTipoPergunta,'$objetoP->pergunta')";
			$resultadoPerg = mysql_query($queryPerg,$conexao); 

			$idFormPerguntaDuplicada = mysql_insert_id();

			//Seleciona as alternativas da pergunta duplicadas e insere
			$queryA     = "SELECT * FROM formulariosAlternativas WHERE idFormularioPerguntas=".$objetoP->idFormularioPerguntas;
			$resultadoA = mysql_query($queryA,$conexao);
			while($objetoA = mysql_fetch_object($resultadoA)){
				$queryAlt     = "INSERT INTO formulariosAlternativas (idFormularioPerguntas,alternativa) VALUES ($idFormPerguntaDuplicada,'$objetoA->alternativa')";
				$resultadoAlt = mysql_query($queryAlt,$conexao); 
			}
		}

	}

	//Recursos de Aprendizagem
	$i = 0;
	$queryRecurso     = "SELECT * FROM recursosAprendizagem WHERE idCurso=".$idCurso;
	$resultadoRecurso = mysql_query($queryRecurso,$conexao); 
	while($objetoRecurso = mysql_fetch_object($resultadoRecurso)){
		$queryRecAp     = "INSERT INTO recursosAprendizagem (idCurso,idUsuario,nome,ordem,autor,descricao,tipo,caminho,url) VALUES ($idCursoDuplicado,'".$_SESSION['idUsuario']."','$objetoRecurso->nome',$objetoRecurso->ordem,'$objetoRecurso->autor','$objetoRecurso->descricao',$objetoRecurso->tipo,'$objetoRecurso->caminho','$objetoRecurso->url')";
		$resultadoRecAp = mysql_query($queryRecAp,$conexao); 

		$idRecursoDuplicado = mysql_insert_id();

		$id_recursoduplicado[$i][0] = $objetoRecurso->idRecurso;
		$id_recursoduplicado[$i][1] = $idRecursoDuplicado;

		$i++;
	}	

	//Sala de Reuniao
	
	$i = 0;
	$querySalaR     = "SELECT * FROM salaReuniaoAtividades WHERE idCurso=".$idCurso;
	$resultadoSalaR = mysql_query($querySalaR,$conexao); 
	while($objetoSalaR = mysql_fetch_object($resultadoSalaR)){
		$querySR     = "INSERT INTO salaReuniaoAtividades (nome,descricao,idCurso,corrigir,dataHora) VALUES ('$objetoSalaR->nome','$objetoSalaR->descricao',$idCursoDuplicado,$objetoSalaR->corrigir,'$objetoSalaR->dataHora')";
		$resultadoSR = mysql_query($querySR,$conexao); 

		$idSalaReuniaoDuplicada = mysql_insert_id();

		$id_salaReuniaoDuplicada[$i][0] = $objetoSalaR->idAtividade;
		$id_salaReuniaoDuplicada[$i][1] = $idSalaReuniaoDuplicada;

		$i++;
	}	

	//Inserindo Administrador no curso duplicado
	$query9 = "INSERT INTO usuariosCursos(idCurso,idUsuario,idTipoUsuario,autorizado) VALUES('$idCursoDuplicado','39','5',1)";
	$resultado9 = mysql_query($query9,$conexao);


	/* DUPLICAR OS ELEMENTOS ASSOCIADOS */

	//Links
	$query     = "SELECT * FROM links WHERE idCurso=".$idCurso;
	$resultado = mysql_query($query,$conexao); 
	while($objeto = mysql_fetch_object($resultado)){
		if($objeto->recursoAssociado){ //se existir um recurso associado aquele link
		       //Seta na variavel a idLink do curso duplicado correspondente a idLink do curso antigo			
			for($i = 0;$i < sizeof($ids_links);$i++){
				if($ids_links[$i][0] == $objeto->idLink){
					$idLinkNoCursoDuplicado = $ids_links[$i][1];
				}
			}	
	               //Seta na variavel a id do elemento associado do curso duplicado correspondente a id do curso antigo		
			if($objeto->recursoAssociado == "modulo"){
				for($i = 0;$i < sizeof($ids_modulos);$i++){
					if($ids_modulos[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $ids_modulos[$i][1];

					}
				}
				
			}else if($objeto->recursoAssociado == "exercicio"){
				for($i = 0;$i < sizeof($id_formduplicado);$i++){
					if($id_formduplicado[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $id_formduplicado[$i][1];

					}
				}	
			
			}else if($objeto->recursoAssociado == "link"){
				for($i = 0;$i < sizeof($ids_links);$i++){
					if($ids_links[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $ids_links[$i][1];

					}
				}	
			
			}else if($objeto->recursoAssociado == "bibliografia"){
				for($i = 0;$i < sizeof($id_biblio);$i++){
					if($id_biblio[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $id_biblio[$i][1];

					}
				}	
			
			}else{//recursos de aprendizagem
				for($i = 0;$i < sizeof($id_recursoduplicado);$i++){
					if($id_recursoduplicado[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $id_recursoduplicado[$i][1];

					}
				}	
			}

			$query1     = "UPDATE links SET idRecursoAssociado=".$idElementoAssociadoNoCursoDuplicado.",recursoAssociado='".$objeto->recursoAssociado."' WHERE idLink=".$idLinkNoCursoDuplicado;
			$resultado1 = mysql_query($query1,$conexao); 

		}
	}

	//Bibliografia
	$query     = "SELECT * FROM bibliografias WHERE idCurso=".$idCurso;
	$resultado = mysql_query($query,$conexao); 
	while($objeto = mysql_fetch_object($resultado)){
		if($objeto->recursoAssociado){ //se existir um recurso associado aquela biblio
		       //Seta na variavel a idBiblio do curso duplicado correspondente a idBiblio do curso antigo			
			for($i = 0;$i < sizeof($id_biblio);$i++){
				if($id_biblio[$i][0] == $objeto->idBibliografia){
					$idBiblioNoCursoDuplicado = $id_biblio[$i][1];
				}
			}	
	               //Seta na variavel a id do elemento associado do curso duplicado correspondente a id do curso antigo		
			if($objeto->recursoAssociado == "modulo"){
				for($i = 0;$i < sizeof($ids_modulos);$i++){
					if($ids_modulos[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $ids_modulos[$i][1];

					}
				}
				
			}else if($objeto->recursoAssociado == "exercicio"){
				for($i = 0;$i < sizeof($id_formduplicado);$i++){
					if($id_formduplicado[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $id_formduplicado[$i][1];

					}
				}	
			
			}else if($objeto->recursoAssociado == "link"){
				for($i = 0;$i < sizeof($ids_links);$i++){
					if($ids_links[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $ids_links[$i][1];

					}
				}	
			
			}else if($objeto->recursoAssociado == "bibliografia"){
				for($i = 0;$i < sizeof($id_biblio);$i++){
					if($id_biblio[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $id_biblio[$i][1];

					}
				}	
			
			}else{//recursos de aprendizagem
				for($i = 0;$i < sizeof($id_recursoduplicado);$i++){
					if($id_recursoduplicado[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $id_recursoduplicado[$i][1];

					}
				}	
			}

			$query1     = "UPDATE bibliografias SET idRecursoAssociado=".$idElementoAssociadoNoCursoDuplicado.",recursoAssociado='".$objeto->recursoAssociado."' WHERE idBibliografia=".$idBiblioNoCursoDuplicado;
			$resultado1 = mysql_query($query1,$conexao); 

		}
	}

	//Exercicios
	$query     = "SELECT * FROM formularios WHERE idCurso=".$idCurso;
	$resultado = mysql_query($query,$conexao); 
	while($objeto = mysql_fetch_object($resultado)){
		if($objeto->recursoAssociado){ //se existir um recurso associado aquela biblio
		       //Seta na variavel a idBiblio do curso duplicado correspondente a idBiblio do curso antigo			
			for($i = 0;$i < sizeof($id_formduplicado);$i++){
				if($id_formduplicado[$i][0] == $objeto->idformulario){
					$idFormularioNoCursoDuplicado = $id_formduplicado[$i][1];
				}
			}	
	               //Seta na variavel a id do elemento associado do curso duplicado correspondente a id do curso antigo		
			if($objeto->recursoAssociado == "modulo"){
				for($i = 0;$i < sizeof($ids_modulos);$i++){
					if($ids_modulos[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $ids_modulos[$i][1];

					}
				}
				
			}else if($objeto->recursoAssociado == "exercicio"){
				for($i = 0;$i < sizeof($id_formduplicado);$i++){
					if($id_formduplicado[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $id_formduplicado[$i][1];

					}
				}	
			
			}else if($objeto->recursoAssociado == "link"){
				for($i = 0;$i < sizeof($ids_links);$i++){
					if($ids_links[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $ids_links[$i][1];

					}
				}	
			
			}else if($objeto->recursoAssociado == "bibliografia"){
				for($i = 0;$i < sizeof($id_biblio);$i++){
					if($id_biblio[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $id_biblio[$i][1];

					}
				}	
			
			}else{//recursos de aprendizagem
				for($i = 0;$i < sizeof($id_recursoduplicado);$i++){
					if($id_recursoduplicado[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $id_recursoduplicado[$i][1];

					}
				}	
			}

			$query1     = "UPDATE formularios SET idRecursoAssociado=".$idElementoAssociadoNoCursoDuplicado.",recursoAssociado='".$objeto->recursoAssociado."' WHERE idformulario=".$idFormularioNoCursoDuplicado;
			$resultado1 = mysql_query($query1,$conexao); 

		}
	}

	//Recursos de Aprendizagem

	$query     = "SELECT * FROM recursosAprendizagem WHERE idCurso=".$idCurso;
	$resultado = mysql_query($query,$conexao); 
	while($objeto = mysql_fetch_object($resultado)){
		if($objeto->recursoAssociado){ //se existir um recurso associado aquele recurso
		       //Seta na variavel a idRecurso do curso duplicado correspondente a idRecurso do curso antigo			
			for($i = 0;$i < sizeof($id_recursoduplicado);$i++){
				if($id_recursoduplicado[$i][0] == $objeto->idRecurso){
					$idRecursoNoCursoDuplicado = $id_recursoduplicado[$i][1];
				}
			}	
			
	               //Seta na variavel a id do elemento associado do curso duplicado correspondente a id do curso antigo		
			if($objeto->recursoAssociado == "modulo"){
				for($i = 0;$i < sizeof($ids_modulos);$i++){
					if($ids_modulos[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $ids_modulos[$i][1];

					}
				}
				
			}else if($objeto->recursoAssociado == "exercicio"){
				for($i = 0;$i < sizeof($id_formduplicado);$i++){
					if($id_formduplicado[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $id_formduplicado[$i][1];

					}
				}	
			
			}else if($objeto->recursoAssociado == "link"){
				for($i = 0;$i < sizeof($ids_links);$i++){
					if($ids_links[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $ids_links[$i][1];

					}
				}	
			
			}else if($objeto->recursoAssociado == "bibliografia"){
				for($i = 0;$i < sizeof($id_biblio);$i++){
					if($id_biblio[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $id_biblio[$i][1];

					}
				}	
			
			}else if(($objeto->recursoAssociado == 1) || ($objeto->recursoAssociado == 2) || ($objeto->recursoAssociado == 3) || ($objeto->recursoAssociado == 4) || ($objeto->recursoAssociado == 5) || ($objeto->recursoAssociado == 6)){//recursos de aprendizagem
				for($i = 0;$i < sizeof($id_recursoduplicado);$i++){
					if($id_recursoduplicado[$i][0] == $objeto->idRecursoAssociado){
						$idElementoAssociadoNoCursoDuplicado = $id_recursoduplicado[$i][1];

					}
				}	
			}

			$query1     = "UPDATE recursosAprendizagem SET idRecursoAssociado=".$idElementoAssociadoNoCursoDuplicado.",recursoAssociado='".$objeto->recursoAssociado."' WHERE idRecurso=".$idRecursoNoCursoDuplicado;
			$resultado1 = mysql_query($query1,$conexao); 

		}
	}

	//Sala de Reuniao
	$query     = "SELECT * FROM salaReuniaoAtividades WHERE idCurso=".$idCurso;
	$resultado = mysql_query($query,$conexao); 
	while($objeto = mysql_fetch_object($resultado)){
		if($objeto->idModuloAssociado){ //se existir um modulo associado aquela atividade da sala de reuniao
			for($i = 0;$i < sizeof($id_salaReuniaoDuplicada);$i++){
				if($id_salaReuniaoDuplicada[$i][0] == $objeto->idAtividade){
					$idAtividadeNoCursoDuplicado = $id_salaReuniaoDuplicada[$i][1];
				}
			}	

			for($i = 0;$i < sizeof($ids_modulos);$i++){
				if($ids_modulos[$i][0] == $objeto->idModuloAssociado){
					$idElementoAssociadoNoCursoDuplicado = $ids_modulos[$i][1];
				}
			}
				

			$query1     = "UPDATE salaReuniaoAtividades SET idModuloAssociado=".$idElementoAssociadoNoCursoDuplicado." WHERE idAtividade=".$idAtividadeNoCursoDuplicado;
			$resultado1 = mysql_query($query1,$conexao); 

		}
	}

	//Permissoes dos Recursos dos Cursos
	$query     = "SELECT * FROM permissoesRecursosCursos WHERE idCurso=".$idCurso;
	$resultado = mysql_query($query, $conexao);
	if(is_resource($resultado)){
		while($objeto = mysql_fetch_object($resultado)){
			$queryDuplica     = "INSERT INTO permissoesRecursosCursos VALUES ($idCursoDuplicado, $objeto->idRecurso, $objeto->idTipoUsuario, $objeto->acao)";
			$resultadoDuplica = mysql_query($queryDuplica, $conexao);
			if(!$resultadoDuplica){
				die("Ocorreu um erro durante a duplicacao do curso.Por favor, relate o erro mencionado ao administrador." . mysql_error());			
			} 
		}
	}else{
		die("Ocorreu um erro durante a duplicacao do curso.Por favor, relate o erro mencionado ao administrador." . mysql_error());	
	}
	
	
	echo "<script>alert('Curso duplicado com sucesso.');window.top.location='entrada.p.php';</script>";
?>
